From: Paul Eggert Date: Sat, 18 Jun 2011 16:04:07 +0000 (-0700) Subject: * fns.c: Check that character arg fits in 'int'. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~324^2~3371^2~55 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=6726e7195ac8ff13232e51b8b14e9b71b07be73c;p=emacs.git * fns.c: Check that character arg fits in 'int'. --- diff --git a/src/ChangeLog b/src/ChangeLog index 505dafd4d5d..6a79486a4b8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -3,6 +3,7 @@ * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'. Use much-faster test for byte-length change. Don't assume string byte-length fits in 'int'. + Check that character arg fits in 'int'. * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication. diff --git a/src/fns.c b/src/fns.c index 51b753b3134..702ecbd7c63 100644 --- a/src/fns.c +++ b/src/fns.c @@ -2141,7 +2141,6 @@ ARRAY is a vector, string, char-table, or bool-vector. */) (Lisp_Object array, Lisp_Object item) { register EMACS_INT size, idx; - int charval; if (VECTORP (array)) { @@ -2161,8 +2160,9 @@ ARRAY is a vector, string, char-table, or bool-vector. */) else if (STRINGP (array)) { register unsigned char *p = SDATA (array); - CHECK_NUMBER (item); - charval = XINT (item); + int charval; + CHECK_CHARACTER (item); + charval = XFASTINT (item); size = SCHARS (array); if (STRING_MULTIBYTE (array)) {